public class Test {
    public static int Method3(int a) {//计算一个数每一位之和
        if (a<=9){
            return a;
        }
        int sum = Method3(a/10)+(a%10);
        return sum;
    }

    public static void main(String[] args) {
        System.out.println(Method3(1234));
    }
    public static int Method2(int a) {//使用递归计算1到10的和
        if(a == 1){
            return 1;//获得第一个加数“1”
        }
        return a+Method2(a-1);
    }

    public static void main2(String[] args) {
        System.out.println(Method2(10));
    }
    public static void Method1(int a) {//按顺序打印一个数字的每一位
        if (a <= 9){
            System.out.print(a+" ");//打印当前a（在最后一层只有两位数）的第一个数
            return;
        }
        Method1(a/10);//（只能对相邻两个数起作用？）。获得了第一位数，开始执行下一行，打印第二位数
        System.out.print(a%10+" ");//打印目前a的最后一位数
    }

    public static void main1(String[] args) {
        Method1(1234);
    }
    /*public static int Method(int a) {//尝试完成第一个递归练习：按顺序打印一个数字的每一位
            if (a/10==0){
                return a;//最后一层递归，得到第一个数
            }else{
                a = a/10;
            }
            int tmp = Method(a);
            return tmp;
    }

    public static void main(String[] args) {
        int b = Method(23);
        System.out.println(b);
    }//该程序只能输出该数字的第一位，且不能连续输出*/
}
